package 第十九章_图形类GUI.观察者模式;

import java.util.*;


public class Message implements MessageSubject{
    private List<Observer> list=new ArrayList<>();
    private String message;
    //作为发送消息的功能
    public void setMessage(String message){
        this.message=message;
        notifyObservers();
    }

    @Override
    public void registerObserver(Observer o) {
        list.add(o);
    }

    @Override
    public void removeObserver(Observer o) {
        list.remove(o);
    }


    @Override
    public void notifyObservers() {
        int size=list.size();
        for(int i=0;i<size;i++){
            //将list <observer>里的对象赋值给observer  observer就是一个接头 可以是任意的在列表中的对象
            Observer observer=list.get(i);
            //任意的对象 使用了抽象的update方法  参数是 message
            observer.update(message);
        }
    }
}
